package com.ruoyi.common.config;

import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 支付宝配置类（若依框架中通常放在`config`包下）
 */
@Configuration
public class AlipayConfig {

    @Value("${alipay.app-id}")
    private String appId;

    @Value("${alipay.private-key}")
    private String privateKey;

    @Value("${alipay.alipay-public-key}")
    private String alipayPublicKey;

    @Value("${alipay.gateway-url}")
    private String gatewayUrl;

    /**
     * 初始化AlipayClient（单例，全局复用）
     */
    @Bean
    public AlipayClient alipayClient() {
        return new DefaultAlipayClient(
                gatewayUrl,          // 支付宝网关
                appId,               // 应用AppID
                privateKey,          // 应用私钥（PKCS#8格式）
                "json",              // 请求格式（固定为json）
                "UTF-8",             // 字符编码（固定为UTF-8）
                alipayPublicKey,     // 支付宝公钥
                "RSA2"               // 签名算法（固定为RSA2）
        );
    }
}
